An analog-to-digital converter (ADC) converts an analog input signal to a digital output code. The output of an ADC may deviate from the ideal output due to variations in manufacturing and due to various sources of inaccuracy in the analog-to-digital conversion process. The transfer function of an ADC is a plot of the code generated at the ADC output as function of the input signal value. Such a plot is not continuous but is a plot of 2N steps, where N the number of bits in the digital output. For an ideal ADC, a single straight line can be drawn through the points at each code-transition boundary, beginning at the origin of the plot.
FIG. 1 shows a plot 2 of an ideal transfer function 4 for a 3-bit ADC with reference points at code transition boundaries. The ADC in this example produces a total of eight steps that each represents a value of the analog input signal. The transition occurs at one code width, which is equal to a least significant bit (LSB). The actual value of an LSB is equal to Vref/2N, where Vref is the reference voltage that determines the full-scale range of the ADC. The resolution of the ADC, which determines the best accuracy to which the ADC can represent an analog input value, is equal to the value of the LSB.
Limitations in the materials used in fabrication and inaccuracies inherent in the conversion process itself cause the actual transfer function of an ADC to deviate from the ideal transfer function. Furthermore, the deviation of each code may depend on previous state of all related circuits and especially on whether the ADC is transitioning from a lower code to a higher code or vice versa.
The deviation of an ADC's transfer function from a straight line is referred to as non-linearity, and more particularly as integral non-linearity (INL). FIG. 2 illustrates a plot 6 of non-linear deviation between the ideal transfer function 4 and the actual transfer function 8 of the exemplary 3-bit ADC. The differences between the ideal voltage levels at which code transitions occur and the actual voltage are referred to as non-linear errors. Non-linear errors can adversely affect the accuracy of an ADC and cause the ADC to produce incorrect codes. In a pipelined ADC that includes multiple internal ADCs, the non-linear errors of the internal ADCs causes an accumulation of errors in the output code as the signal passes through each internal ADC.